exynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT
author[email protected] <[email protected]>
Tue, 22 Apr 2014 17:23:49 +0000 (21:23 +0400)
committerMarek Vasut <[email protected]>
Wed, 30 Apr 2014 08:30:57 +0000 (10:30 +0200)
commite6e493f341b0488843efe0c5b2c1274997fbbfe8
tree3f7ac1ac539ecbfa6354c630cacdf45d5930b173
parent078d7302ac9263e582d625c377c8289ae07436b7
exynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT

Commit 4a271cb1b4ff doesn't take into account that fdtdec_setup_gpio()
returns success when the gpio passed to it is FDT_GPIO_NONE (no
gpio node found in the fdtdec_decode_gpio() call). This results in
calling gpio_direction_output() on invalid gpio. For this reason
executing "usb start" command on Arndale causes data abort in the
ehci-exynos driver.

Add the fdt_gpio_isvalid() check to fix that problem.

Signed-off-by: Andrey Konovalov <[email protected]>
Cc: Julius Werner <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Minkyu Kang <[email protected]>
Cc: Marek Vasut <[email protected]>
drivers/usb/host/ehci-exynos.c
drivers/usb/host/xhci-exynos5.c